Currently, both ink jet printers and laser printers are capable of producing full color images with high quality gray scale precision. Such color printers are controlled by a printer driver program which provides an interface between an application program running on a host processor and the printer. Normally, a user creates a document using an application on the host computer and then calls for initiation of the printer driver program. In response to the users instituting a print command, the host computer transmits a series of page descriptions to the printer driver. The printer driver then proceeds to use built-in functions to rasterize the page description into a pixel map of a predefined resolution (e.g. 300 dots per inch, 600 dots per inch, etc.). Each pixel in the pixel map comprises, for instance, three eight-bit values corresponding to red, green and blue values derived from a display device in the host processor. The printer driver adjusts the color values in accordance with a predetermined calibration function so as to assure that the to-be-printed colors will appear the same as the colors displayed on the display device. At the same time, the red, green and blue values are converted to Cyan (C), Magenta (M), and Yellow (Y) values. As a result, each pixel is then represented by three eight-bit values which identify the corresponding levels of C,M,Y that will be used to subsequently control the print mechanism. An additional eight-bit value is supplied for a pixel black (K) dot is to be applied at the pixel location.
Most color printers are binary in nature, in that they either apply a full color dot or no color dot to a pixel location. Such color printers do not employ a control mechanism to enable adjustment of the intensity of a particularly applied color dot. As a result, a printer driver for a binary color printer employs a color half toning process which reduces the 24 bit color information to 3 bits per pixel print position (1 bit for each of the C, Y, and M color planes).
The half-toning process may use a number of procedures to improve the color representation of the image. In theory, equal parts of C, M and Y should subtract all light and create a pure black. However, due to impurities present in all printing inks, a mix of these colors generally yields a non-black color. To compensate for this deficiency, some printers include a rule that C, M and Y color dots will never be overprinted in registration. Instead, a K dot is printed from the K color plane. In such case, a "mottled" image often appears as a result of the interspersal of K dots. This creates a discontinuity in the half-tone pattern.
Printer systems which enable overprinting of CMY and K dots employ additional procedures to improve image color representation. One such procedure is "undercolor removal" (UCR) and another is "gray component" replacement (GCR)--both available in the Adobe Photoshop software, available from the Adobe Corporation, 158 Charleston Road, Mountain View, Calif. 94039. In UCR, K dots from the K image plane are used to add depth to shadow areas and to neutral colors. In GCR, more K ink is used in over a wider range of colors.
Once a binary color printer has converted a particular pixel location from RGB to CMY and then converted the CMY values to binary values for printing, "error values" will be present. These error values occur due to the fact that while there are a possible 255 levels of color that can be represented by an 8 bit color value, the binary printer only prints one of two colors for each of CMY and K. As a result, an error value occurs unless a particular printed pixel color has a zero or 255 color value. Prior art printers have employed an "error diffusion" process whereby the error value is "diffused" to neighboring pixel positions. In converting a pixel's color value, the value is tested against a threshold (e.g. 127) to determine if the color value is closer to a full saturated value (255) or closer to white (0). Depending upon which side of the threshold the color value resides, the pixel value is converted to either a 255 or a 0 value. Then, a difference value between the input color value for the pixel and its output level (set to either 0 or 255) is established. This is the diffusion error which is divided up and distributed to neighboring pixels yet to be processed (e.g. a pixel next to be processed on the raster line and 3 pixels on the immediately lower raster line that are neighbors to the pixel just processed). One such error diffusion process is described by Floyd and Steinberg, in "An Adaptive Algorithm For Spatial Gray Scale", SID 75 Digest; Society for Information Display, 1975, pages 36-37. See also U.S. Pat. No. 4,680,645 to Meyer et al.
In the Floyd et al. error diffusion procedure, pixels are processed from left to right along each raster line. Raster lines are processed from top to bottom and the error value from each pixel is broken up into four parts which are distributed to neighboring pixels, with the next pixel to be processed receiving 7/16ths of the error value, the neighboring pixel to the lower right on the next raster line receiving 1/16th of the error value, the pixel immediately below the pixel just processed receiving 5/16ths of the error value and, the pixel to the lower left of the pixel just processed receiving 3/16ths of the error value.
There is a continuing need to improve the clarity of color images produced by binary color printers. To improve clarity, image noise must be reduced so as to avoid the mottled appearance that may appear in certain gray scale areas. Furthermore, color conversion procedures used in such printers must take into account the fact that many printers are constructed so as to prevent C,M and Y overprints in registration and to further prevent any black/C,M or Y overprints.
Accordingly, it is an object of this invention to provide a binary color printer with a means for improving print image clarity.
It is yet another object of this invention to provide a binary color printer with means for automatically determining if a gray scale should be represented by a black dot or a combination of C,M or Y dots.
It is yet another object of this invention to provide a binary printer with an improved error diffusion process that is adaptive in accordance with a characteristic of a color to be printed.